package com.xtkj.superclub_friendscircle.service;

import com.xtkj.superclub_entity.entity.friendsCircle.UserLike;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 项目名称：superclub
 * 类 名 称：ILike2DBService
 * 类 描 述：TODO
 * 创建时间：2020/1/3 13:46
 * 创 建 人：xiezhiyan
 */
public interface ILike2DBService {

    /**
     * 保存点赞记录
     * @param userLike
     * @return
     */
    void save(UserLike userLike);

    /**
     * 批量保存或修改
     * @param list
     */void
     saveAll(List<UserLike> list);


    /**
     * 根据被点赞分享的id查询点赞列表（即查询都谁给这个分享点赞过）
     * @param shareId 被点赞分享的id
     * @param pageable
     * @return
     */
    List<UserLike> getLikedListByShareId(String shareId, Pageable pageable);

    /**
     * 根据点赞人的id查询点赞列表（即查询这个人都给哪些文章点赞过）
     * @param likesUserId
     * @param pageable
     * @return
     */
    List<UserLike> getLikedListByLikesUserId(String likesUserId, Pageable pageable);

    /**
     * 通过被点赞分享和点赞人id查询是否存在点赞记录
     * @param likedUserId
     * @param shareId
     * @return
     */
    UserLike getByLikedUserIdAndShareId(String likedUserId, String shareId);

    /**
     * 将Redis里的点赞数据存入数据库中
     */
    void transLikedFromRedis2DB();

    /**
     * 将Redis中的点赞数量数据存入数据库
     */
    void transLikedCountFromRedis2DB();
}
